Data converters are used in many applications such as telephone switching equipment, voice band data communications, speech coding systems, and audio and video signal processing equipment. Oversampled analog-to-digital (A/D) converter, includes one or more stages of decimation which lowers the sampling rate of periodic digital samples from the higher rate of an oversampling A/D converter. Each time the oversampling A/D converter generates a digital sample, a DSP is interrupted to acquire the digital sample and write the sample to DSP memory. Alternatively, the digital sample could be acquired by the DSP by polling the status of the DSP input data register coupled to the A/D output data register. When a sufficient number of samples has been acquired by the DSP, the DSP can branch to a routine to filter and decimate the samples to result in a single decimated sample. An oversampled digital-to-analog (D/A) converter includes one or more stages of interpolation which raises the sampling rate of periodic input digital samples to the higher rate of the D/A converter. Each time the oversampled D/A converter requests a digital input word, a DSP is interrupted to write a digital sample to one of its output registers which provides input to the oversampled D/A converter. Alternatively, the digital sample could be provided by the DSP by polling the status of the DSP output data register coupled to the D/A input data register.
Data converters are only two of many sources from which a DSP in one of the above applications can receive interrupts. Each time the DSP receives an interrupt, the DSP goes into an interrupt service routine. There is overhead associated with each interrupt, The DSP must cease executing the set of instructions it was executing at the time the interrupt occurred, execute interrupt service routine instructions to save addresses of RAM and ROM pointers, and know the addresses of available portions of memory to use to temporarily store data so that subsequent to servicing the interrupt, the DSP can reconstruct its pre-interrupt status and resume executing the set of instructions it was executing at the time time interrupt occurred. Each interrupt of the DSP thus has an associated cost in terms of instruction execution, measured in millions of instructions per second (MIPS). Each interrupt translates into fewer MIPS available for useful application of the DSP. The cost can also be translated into consumption of power and lost computing time.
It would be desirable to have a data converter that interrupts its associated DSP fewer times in processing the same quantity of data. Reducing the number of times the DSP is interrupted increases the available MIPS for calculation and further, conserves power by eliminating needless execution of the interrupt service routine instructions.